-
Notifications
You must be signed in to change notification settings - Fork 147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FEAT] Fix projection pushdowns in actor pool project #2680
Conversation
7378183
to
12fcb9b
Compare
772c9a2
to
19dca2d
Compare
cfeb1bc
to
2040828
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! Just two non-blocking comments.
I'm not the most familiar with how the actor pool project works, but I assume your optimizations, as explained, make sense, so based on that the code looks good to go.
let required_column_names = projection | ||
.projection | ||
.iter() | ||
.flat_map(get_required_columns) | ||
.collect_vec(); | ||
let distinct_required_column_names = | ||
required_column_names.iter().collect::<IndexSet<_>>().len(); | ||
if required_column_names.len() == distinct_required_column_names { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very minor comment but a possible way to do the same check that may be more performant is to iterate through the required columns and put them into a set after checking if they already exist in there. That way you can early terminate
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, modified!
.arced(); | ||
let plan = LogicalPlan::Project(Project::try_new( | ||
plan, | ||
vec![col("udf_results_0"), col("udf_results_1")], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could also add some aliased columns in here too, since they do not perform computation so you expect them to also be merged with the ActorPoolProject
correctly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good call-out, added it into the test and verified that the alias gets correctly absorbed into the ActorPoolProject
2040828
to
b76b148
Compare
CodSpeed Performance ReportMerging #2680 will not alter performanceComparing Summary
|
Adds some fixes for performing projection pushdowns performed by actor pool project